# -*- coding: utf-8 -*-
from common import orm
from common.utils.types import Enum

BET_TYPE = Enum({
    "ONE_FRONT": (1L, u"猜冠军"),
    "TWO_FRONT": (2L, u"猜前二"),
    "THREE_FRONT": (3L, u"猜前三"),
    "FOUR_FRONT": (4L, u"猜前四"),
    "FIVE_FRONT": (5L, u"猜前五"),
    "ONE_ANY": (6L, u"定位胆"),
    "FIRST_BSOE": (7L, u"冠军大小单双"),
    "SECOND_BSOE": (8L, u"亚军大小单双"),
    "THIRD_BSOE": (9L, u"季军大小单双"),
    "DRAGON_TIGER": (10L, u"龙虎"),

    "PLATE_BSOE_1": (11L, u"第1名"),
    "PLATE_BSOE_2": (12L, u"第2名"),
    "PLATE_BSOE_3": (13L, u"第3名"),
    "PLATE_BSOE_4": (14L, u"第4名"),
    "PLATE_BSOE_5": (15L, u"第5名"),
    "PLATE_BSOE_6": (16L, u"第6名"),
    "PLATE_BSOE_7": (17L, u"第7名"),
    "PLATE_BSOE_8": (18L, u"第8名"),
    "PLATE_BSOE_9": (19L, u"第9名"),
    "PLATE_BSOE_10": (20L, u"第10名"),

    "PLATE_DRAGON_TIGER_1v10": (21L, u"1v10龙虎"),
    "PLATE_DRAGON_TIGER_2v9": (22L, u"2v9龙虎"),
    "PLATE_DRAGON_TIGER_3v8": (23L, u"3v8龙虎"),
    "PLATE_DRAGON_TIGER_4v7": (24L, u"4v7龙虎"),
    "PLATE_DRAGON_TIGER_5v6": (25L, u"5v6龙虎"),
})


class Order(orm.Model):
    __tablename__ = "ff_pk10_order"
    id = orm.Column(orm.BigInteger, primary_key=True)
    user_id = orm.Column(orm.BigInteger)
    track_id = orm.Column(orm.BigInteger)  # 每次追号会产生一个ID，普通的为null
    type = orm.Column(orm.SmallInteger)  # 订单类型
    term = orm.Column(orm.VARCHAR)  # 期号
    bet_type = orm.Column(orm.Integer)  # 押宝方式，见上面的枚举
    unit = orm.Column(orm.FLOAT, default=2)  # 用户自选的每注金额
    number = orm.Column(orm.VARCHAR)  # 用户购买数据，格式和bet_type有关
    price = orm.Column(orm.FLOAT)  # 总价
    status = orm.Column(orm.Integer)  # 订单状态
    track_status = orm.Column(orm.Integer)  # 追号状态
    times = orm.Column(orm.Integer, default=1)  # 倍数
    win_price = orm.Column(orm.FLOAT, default=0)  # 中奖金额
    bonus = orm.Column(orm.FLOAT, default=0)  # 系统奖励（四舍五入）
    extend = orm.Column(orm.TEXT)
    created_at = orm.Column(orm.DATETIME)
    updated_at = orm.Column(orm.DATETIME)


# 描述及排序
BET_TYPE_DESC = (
    (BET_TYPE.ONE_FRONT, u"至少选1个号，猜对第一个开奖号码即中<font color=#ff00000>10%s</font>元"),
    (BET_TYPE.TWO_FRONT, u"每位至少选1个号，按位猜对开奖号码前2位即中<font color=#ff00000>55%s</font>元"),
    (BET_TYPE.THREE_FRONT, u"每位至少选1个号，按位猜对开奖号码前3位即中<font color=#ff00000>160%s</font>元"),
    (BET_TYPE.FOUR_FRONT, u"每位至少选1个号，按位猜对开奖号码前4位即中<font color=#ff00000>350%s</font>元"),
    (BET_TYPE.FIVE_FRONT, u"每位至少选1个号，按位猜对开奖号码前5位即中<font color=#ff00000>500%s</font>元"),
    (BET_TYPE.ONE_ANY, u"至少选1个号，猜对相同位置开奖号即中<font color=#ff00000>10%s</font>元"),
    (BET_TYPE.FIRST_BSOE, u"至少选1个号，猜对第1位的大（>=6）、小（&lt;6）、单、双即中<font color=#ff00000>3.6%s</font>元"),
    (BET_TYPE.SECOND_BSOE, u"至少选1个号，猜对第2位的大（>=6）、小（&lt;6）、单、双即中<font color=#ff00000>3.6%s</font>元"),
    (BET_TYPE.THIRD_BSOE, u"至少选1个号，猜对第3位的大（>=6）、小（&lt;6）、单、双即中<font color=#ff00000>3.6%s</font>元"),
    (BET_TYPE.DRAGON_TIGER, u"至少选1个号，猜对第1和10位的龙（第1位>第10位）、虎（反之）关系即中<font color=#ff00000>3.6%s</font>元"),
)


def get_avaliable_bet_type():
    _list = []
    for index, (bet_type, desc) in enumerate(BET_TYPE_DESC):
        _list.append({
            "id": index + 1,
            "title": BET_TYPE.get_label(bet_type),
            "play_id": bet_type,
            "des": desc,
            "rule": "",
            "support": 1
        })
    return _list

BET_TYPE_DESC_V3 = (
    (BET_TYPE.ONE_ANY, u"至少选1个号，猜对相同位置开奖号即中奖"),
    (BET_TYPE.ONE_FRONT, u"至少选1个号，猜对第一个开奖号码即中奖"),
    (BET_TYPE.TWO_FRONT, u"每位至少选1个号，按位猜对开奖号码前2位即中奖"),
    (BET_TYPE.THREE_FRONT, u"每位至少选1个号，按位猜对开奖号码前3位即中奖"),
    (BET_TYPE.FOUR_FRONT, u"每位至少选1个号，按位猜对开奖号码前4位即中奖"),
    (BET_TYPE.FIVE_FRONT, u"每位至少选1个号，按位猜对开奖号码前5位即中奖"),
    (BET_TYPE.FIRST_BSOE, u"至少选1个号，猜对第1位的大（>=6）、小（<6）、单、双即中奖"),
    (BET_TYPE.SECOND_BSOE, u"至少选1个号，猜对第2位的大（>=6）、小（<6）、单、双即中奖"),
    (BET_TYPE.THIRD_BSOE, u"至少选1个号，猜对第3位的大（>=6）、小（<6）、单、双即中奖"),
    (BET_TYPE.DRAGON_TIGER, u"至少选1个号，猜对第1和10位的龙（第1位>第10位）、虎（反之）关系即中奖"),
)


def get_avaliable_bet_type_v3():
    _list = []
    for index, (bet_type, desc) in enumerate(BET_TYPE_DESC_V3):
        _list.append({
            "id": index + 1,
            "title": BET_TYPE.get_label(bet_type),
            "play_id": bet_type,
            "des": desc,
            "rule": "",
            "support": 1
        })
    return _list
